package cn.sdormitory.exam.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 考试内容VO
 */
@Data
@TableName("t_exam_info")
public class ExamInfoVO {
    private static final long serialVersionUID = 5959059717228848451L;

    @TableId
    private Long id;

    @ApiModelProperty(value = "学期ID")
    private String termId;

    @ApiModelProperty(value = "课程名称")
    private String courseName;
    
    @ApiModelProperty(value = "课程id")
    private  Long courseId;

    @ApiModelProperty(value = "班级ID")
    private String classId;

    @ApiModelProperty(value = "考试名称")
    private String examName;

    @ApiModelProperty(value = "考试开始时间")
    private String examBeginTime;

    @ApiModelProperty(value = "考试结束时间")
    private String examEndTime;

    @ApiModelProperty(value = "监考老师")
    private String invigilationTeacher;

    @ApiModelProperty(value = "考试教室ID")
    private String examRoom;

    @ApiModelProperty(value = "状态 0-无效 1-有效")
    private String status;
    
    @ApiModelProperty(value = "pid")
    private Long pid;

    @TableField(exist = false)
    private Integer pageSize;

    @TableField(exist = false)
    private Integer pageNum;

    @TableField(exist = false)
    @ApiModelProperty(value = "班级名称")
    private String className;

    @TableField(exist = false)
    @ApiModelProperty(value = "课程名称")
    private String dictLabel;
    
    @ApiModelProperty(value = "班主任")
    @TableField(exist = false)
    private String userName;

    private String createBy;

    private Date createTime;

    private String modifyBy;

    private Date modifyTime;
    
    @TableField(exist = false)
    private String examRecord;
    
    // 考试成绩录入，选择考试名称时可能对应有多个班级
    @TableField(exist = false)
    private List<Map<String, String>> classList;
    
    @TableField(exist = false)
    private List<ExamResultInfoVO> examStudents;
    
    @TableField(exist = false)
    private List<ExamInfoVO> children;
    
}
